package mth.rmclusterer;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;

public class AssignmentsOfRun {
	/*
	 * Diese Klasse repräsentiert die unterste Ebene an möglichen Clusterzuweisungen.
	 * Hier werden die Clusterzuweisungen eines einzelnen Laufs verwaltet.
	 */
	private String[] clusterRunValues;
	private int kValue;

	AssignmentsOfRun(String file, int rK) {
		kValue=rK;
		clusterRunValues=getClustersOfFile(file);
	}
	
	public void addStringToValues(String val) {
		clusterRunValues=Manager.addStringToArray(clusterRunValues, val);
	}
	
	public String[] getClusterRunValues() {
		return clusterRunValues;
	}
	
	private String[] getClustersOfFile(String file) {
		BufferedReader lineRider;
		String[] data=new String[0];
		try {
			lineRider = new BufferedReader(new FileReader(Manager.SOURCE_PATH_TO_VOTE+file));
			String element=lineRider.readLine();
			element=lineRider.readLine();
			while (element!=null) {
				data=Manager.addStringToArray(data, "cluster_"+element.split(",")[(element.split(",").length)-(kValue+1)]);
				element = lineRider.readLine();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return data;
	}
}
